#include <bits/stdc++.h>
using namespace std;
char mp[4][105];
int n,k;
int main(void){
    scanf("%d%d",&n,&k);
    for(int i=0;i<4;i++){
        for(int j=0;j<n;j++){
            mp[i][j]='.';
        }
    }
    if(k%2==0){
        //关于x轴对称
        //放中间两行
        for(int i=1;i<=2;i++){
            for(int j=1;j<=k/2;j++){
                mp[i][j]='#';
            }
        }
    }else{
        mp[1][n/2]='#';
        if(k!=1){
            //放一行
            if(k<=n-2){
                for(int i=1;i<=(k-1)/2;i++){
                    mp[1][i]=mp[1][n-i-1]='#';
                }
            }else{
                //不止一行
                for(int i=1;i<=n-2;i++){
                    mp[1][i]='#';
                    k-=n-2;
                    //放中间第二行
                    for(int i=1;i<=k/2;i++){
                        mp[2][i]=mp[2][n-i-1]='#';
                    }
                }
            }
        }
    }
    printf("YES\n");
    for(int i=0;i<4;i++){
        printf("%s\n",mp[i]);
    }
    return 0;
}